目前所知的傳資料到前端的方式主要有兩種,
一種是ViewBag或ViewData,
另外一種是用Model,
今天要分享的是ViewBag的部分,
這一篇 有稍微介紹一下,可以參考,
剛開始用MVC的時候,
上網查好像說ViewData有一些缺點,
(其實我忘了是什麼缺點了)
還是用ViewBag比較好,
所以現在習慣都使用ViewBag,
基本上ViewBag跟ViewData感覺都是一次性傳遞,
當你從後端傳到前端之後,
當網頁載完之後值就會自動消失,
或甚至沒有傳到前端,
如果有Response.Redirect也會自動消失,
ViewBag可以傳遞任何東西,
包括C#原本的變數型態(int, string等等),
甚至Model或List都可以傳遞,
只要在後端輸入
ViewBag.Error = "這是錯誤訊息";
DateTime date = DateTime.Now;
ViewBag.Date = date;
前端的用法幾乎和後端一樣,
不過如果要載入後端的資料記得加一個@,
這是Razor的語法(我是看成C#在用,沒什麼差別)
載入的方法有兩種,可以直接在前端使用,
<div>@ViewBag.Error</div>
也可以先承接變數之後再使用
@{
var error = ViewBag.Error;
var date = ViewBag.Date;
}
...
<div>@error</div>
<div>@date.ToString("yyyy/MM/dd HH:mm:ss")</div>
有沒有感覺跟C#很像?